package MIDI.Instruments is

   subtype Instrument_Type      is Uint8_t range 0 .. 127;

   subtype Piano                is Uint8_t range 0 .. 7;
   subtype Chromatic_Percussion is Uint8_t range 8 .. 15;
   subtype Organ                is Uint8_t range 16 .. 23;
   subtype Guita                is Uint8_t range 24 .. 31;
   subtype Bass                 is Uint8_t range 32 .. 39;
   subtype Orchestra_Solo       is Uint8_t range 40 .. 47;
   subtype Orchestra_Ensemble   is Uint8_t range 48 .. 55;
   subtype Brass                is Uint8_t range 56 .. 63;
   subtype Reed                 is Uint8_t range 64 .. 71;
   subtype Wind                 is Uint8_t range 72 .. 79;
   subtype Synth_Lead           is Uint8_t range 80 .. 87;
   subtype Synth_Pad            is Uint8_t range 88 .. 95;
   subtype Synth_Sound_FX       is Uint8_t range 96 .. 103;
   subtype Ethnic               is Uint8_t range 104 .. 111;
   subtype Percussive           is Uint8_t range 112 .. 119;
   subtype Sound_Effect         is Uint8_t range 120 .. 127;

   function Get_Instrument_Class (Instrument : Instrument_Type) return String;

   function Get_Instrument_Name (
      Instrument : Instrument_Type;
      Bank       : Uint16_be := 0
      ) return String;

end MIDI.Instruments;
